The standard test used to determine the individual L-V relationship consists of recording MV against multiple submaximal loads (≈5 loads) and, subsequently, modeling the L-V relationship through a linear regression to estimate the 1RM as the load associated with the MV of the 1RM (V1RM)
Because of the low reliability of the individual V1RM (6,29,73), and the trivial differences between the between- and within-subject variability for the V1RM (70), the use of a general V1RM for all subjects could be recommended to simplify the testing procedure.
we recommend the use of MV to estimate the 1RM because of its greater reliability (when compared with MPV) when lifting light relative loads
Considerations for coaches using 1RM estimates from velocity
the relationship between the MV recorded during a single repetition and the %1RM may be influenced by the type of exercise (e.g., squat versus leg press (13,38,75), execution technique (e.g., concentric-only vs. eccentric-concentric (28,65), sex (higher values for men at lower %1RM) (3,84), and measurement device
the MV-%1RM relationship, especially at light relative loads, is subject-specific
overestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships
Slope intercept formula
\(y = mx + b\) —–> \(x = \frac{y-b}{m}\)
Minimum Velocity Threshold (MVT)
Force-Velocity Balance (slope)
Curve Score / Total Power (area under curve)
Lzero - Velocity at zero load
Vzero - Load at zero velocity
Overestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships
Progressive L-V Relationship
Instructions
The standard test used to determine the individual L-V relationship consists of recording MV against multiple submaximal loads (≈5 loads) and, subsequently, modeling the L-V relationship through a linear regression to estimate the 1RM as the load associated with the MV of the 1RM (V1RM)
Because of the low reliability of the individual V1RM (6,29,73), and the trivial differences between the between- and within-subject variability for the V1RM (70), the use of a general V1RM for all subjects could be recommended to simplify the testing procedure.
we recommend the use of MV to estimate the 1RM because of its greater reliability (when compared with MPV) when lifting light relative loads
Considerations for coaches using 1RM estimates from velocity
the relationship between the MV recorded during a single repetition and the %1RM may be influenced by the type of exercise (e.g., squat versus leg press (13,38,75), execution technique (e.g., concentric-only vs. eccentric-concentric (28,65), sex (higher values for men at lower %1RM) (3,84), and measurement device
the MV-%1RM relationship, especially at light relative loads, is subject-specific
overestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships
Back Squat Example
Summary of Barbell Back Squat Session
Load
Reps
Avg. Mean Velo (m/s)
SD Mean Velo (m/s)
20
5
1.02
0.15
40
10
1.12
0.05
60
5
0.87
0.17
70
5
0.99
0.05
80
10
0.66
0.09
84
3
0.98
0.05
90
5
1.09
0.02
100
5
0.72
0.12
110
5
0.67
0.18
120
3
0.58
0.04
125
5
0.60
0.10
130
10
0.56
0.10
140
3
0.48
0.01
145
9
0.45
0.05
160
2
0.43
0.05
All Reps from Back Squat L-V Barbell Back Squat Session
(I) Mean Velocity vs Load
Best Rep per Load by Mean Velocity
This chart shows the best rep of each set (load) and it’s mean velocity (m/s). The same data is shown in tabular form on the side margin
Load
MV
20
1.319
40
1.190
60
1.174
70
1.075
80
0.831
84
1.033
90
1.110
100
0.888
110
0.857
120
0.624
125
0.725
130
0.758
140
0.495
145
0.544
160
0.462
Figure 1: ?(caption)
(II) Linear Regression
x =Load | y = MV
\(method (lm) = MV \sim Load\)
\(MV = 1.152819 + (-0.0043569 * Load)\)
\(R^2 = 0.98586\)
Y-Intercept (b) = 1.152819
Slope (m) = -0.0043569
(III) Estimate 1 Rep Max
Minimum Velocity Threshold (y) = 0.30
\(y = mx + b\) —–> \(x = \frac{y-b}{m}\)
\[
e1RM = \frac{0.3 - 1.15282}{-0.00435696}
\]
e1RM = 196kg
+
2-Point Method
Instructions
Bench Press Example
Here is the table for the bench press example for 2 point method
+
Load
Reps
Avg Mean Velocity (m/s)
Max Mean Velocity (m/s)
SD Mean Velocity (m/s)
20
10
1.33
1.47
0.08
40
5
1.30
1.32
0.02
60
5
1.10
1.12
0.01
80
3
0.90
0.92
0.02
90
3
0.80
0.81
0.01
110
2
0.60
0.62
0.03
130
1
0.41
0.41
NA
+
(I) Mean Velocity vs Load
Load
MV
Method
20
1.470
Full
40
1.318
Full
60
1.119
2pt
80
0.922
Full
90
0.815
Full
110
0.622
2pt
130
0.409
Full
Load Velocity Data Table - Barbell Back Squat
+
(II) Linear Regression
x =Load | y = MV
\(method (lm) = MV \sim Load\)
\(MV = 1.59789 + (-0.00915 * Load)\)
\(R^2 = 0.98586\)
Y-Intercept (b) = 1.597887
Slope (m) = -0.009146907
(III) Estimate 1 Rep Max
Minimum Velocity Threshold (y) = 0.17
\(y = mx + b\) —–> \(x = \frac{y-b}{m}\)
\[
e1RM = \frac{0.17 - 1.597887}{-0.009146907}
\]
e1RM = 156kg
Source Code
---title: "Velocity Based Estimated 1 rep Max"author: "Lauren Green"format: html: self-contained: true code-tools: true smooth-scroll: true toc: true toc-depth: 2 toc-location: left toc-title: "On this page" theme: luxexecute: warning: falseknitr: opts_chunk: warning: false message: falseeditor: visualbibliography: references.bib---```{r}#| echo: falselibrary(tidyr)library(ggplot2)library(stringr)library(plotly)library(dplyr)library(readr)library(formattable)library(ggthemes)library(DescTools)library(googlesheets4)## Read all data gs4_deauth()sheet_id <-"https://docs.google.com/spreadsheets/d/1hzXw4B6Tm1ro6qyaBMTlLdJ2YhdBHAI2dvxXIQQe-0Q/"appData <-read_sheet(sheet_id)VmaxData <- appData %>%transmute("Date"= Date,"User"= User,"Exercise"= Exercise,"Set"= Set,"Load"= Load,"Rep"= Rep,"mVelo"= aVelocity,"pVelo"= pVelocity,"mPow"= aPower,"pPow"= pPower)## Clean datavmaxSquat <- VmaxData %>%filter(Exercise =="Back Squat", User =="First Player")vmaxBench <- VmaxData %>%filter(Exercise =="Bench Press", User =="Second Athlete", Date =="10-20-2022")```{fig-align="center"}# Estimating 1 Rep Max## What is 1RM?```{r}#| echo: falselibrary(vembedr)#embed_url("https://www.youtube.com/watch?v=QlYgnf_qCNo")```## Methods for finding 1RM## Velocity Based vs Traditional Methods## Velocity Based MethodsThe standard test used to determine the individual L-V relationship consists of recording MV against multiple submaximal loads (≈5 loads) and, subsequently, modeling the L-V relationship through a linear regression to estimate the 1RM as the load associated with the MV of the 1RM (V1RM)Because of the low reliability of the individual V1RM (6,29,73), and the trivial differences between the between- and within-subject variability for the V1RM (70), the use of a general V1RM for all subjects could be recommended to simplify the testing procedure.we recommend the use of MV to estimate the 1RM because of its greater reliability (when compared with MPV) when lifting light relative loadsConsiderations for coaches using 1RM estimates from velocitythe relationship between the MV recorded during a single repetition and the %1RM may be influenced by the type of exercise (e.g., squat versus leg press (13,38,75), execution technique (e.g., concentric-only vs. eccentric-concentric (28,65), sex (higher values for men at lower %1RM) (3,84), and measurement devicethe MV-%1RM relationship, especially at light relative loads, is subject-specificoverestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships- Slope intercept formula$y = mx + b$ -----\> $x = \frac{y-b}{m}$- Minimum Velocity Threshold (MVT)- Force-Velocity Balance (slope)- Curve Score / Total Power (area under curve)- Lzero - Velocity at zero load- Vzero - Load at zero velocity::: callout-caution## Overestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships:::------------------------------------------------------------------------# Progressive L-V Relationship## InstructionsThe standard test used to determine the individual L-V relationship consists of recording MV against multiple submaximal loads (≈5 loads) and, subsequently, modeling the L-V relationship through a linear regression to estimate the 1RM as the load associated with the MV of the 1RM (V1RM)Because of the low reliability of the individual V1RM (6,29,73), and the trivial differences between the between- and within-subject variability for the V1RM (70), the use of a general V1RM for all subjects could be recommended to simplify the testing procedure.we recommend the use of MV to estimate the 1RM because of its greater reliability (when compared with MPV) when lifting light relative loadsConsiderations for coaches using 1RM estimates from velocitythe relationship between the MV recorded during a single repetition and the %1RM may be influenced by the type of exercise (e.g., squat versus leg press (13,38,75), execution technique (e.g., concentric-only vs. eccentric-concentric (28,65), sex (higher values for men at lower %1RM) (3,84), and measurement devicethe MV-%1RM relationship, especially at light relative loads, is subject-specificoverestimation of the data fit because of the presence of autocorrelation because authors included more than one observation from the same participant to calculate the general L-V relationships## Back Squat Example##### Summary of Barbell Back Squat Session::: column-body-outset```{r}#| echo: falsesquatSumm <- vmaxSquat %>%group_by(Load) %>%summarise("Reps"=max(Rep),"Avg. Mean Velo (m/s)"=round(mean(mVelo),2),"SD Mean Velo (m/s)"=round(sd(mVelo),2))# Print table of summarized dataformattable(squatSumm, align ="c")``````{r}#| echo: false#| label: plot-bbSquat-MVxLoad-all#| fig-cap: "All Reps from Back Squat L-V Barbell Back Squat Session"plotSquatAll <-ggplot(vmaxSquat, aes(x = Load, y = mVelo)) +geom_point(shape ="circle", size = 2L, colour ="#228B22") +labs(title ="Mean Velocity by Load",subtitle ="All Reps from Back Squat Session",x ="Load (kg)",y ="Mean Velocity (m/s)") +theme_gdocs()ggplotly(plotSquatAll)```:::#### **(I) Mean Velocity vs Load**##### Best Rep per Load by Mean Velocity```{r}#| echo: false# Select load and max MV for LV profileprofSquat <- vmaxSquat %>%group_by(Load) %>%summarise("MV"=max(mVelo))## Fit Linear Model# Minimum Velocity ThresholdmvtSquat <-0.3# Fit linear modellvfit_squat <-lm(data = profSquat, MV ~ Load)# formulalvFormula_squat <-paste0("MV = ", round(lvfit_squat$coefficients[1],5), " + ", round(lvfit_squat$coefficients[2],5), " * Load")# R-squared valuerSquared_squat <-paste0("R^2 = ", round(summary(lvfit_squat)$r.squared,5))```This chart shows the best rep of each set (load) and it's mean velocity (m/s). The same data is shown in tabular form on the side margin::: {#fig-Squat-Profile layout-nrow="1"}```{r}#| echo: false# Print table of profile dataformattable(profSquat, align ="c")# Plot LV data with lmplotSquatLV <-ggplot(profSquat, aes(x = Load, y = MV,)) +geom_point(shape ="circle", size = 4L, colour ="#228B22") +geom_smooth(method = lm) +geom_text(aes(label = lvFormula_squat), x =120, y =1) +geom_text(aes(label = rSquared_squat), x =120, y =0.9) +labs(title ="Mean Velocity by Load",subtitle ="Barbell Back Squat - High Bar",x ="Load (kg)",y ="Mean Velocity (m/s)") +theme_gdocs()ggplotly(plotSquatLV)```:::#### **(II) Linear Regression**x =Load \| y = MV$method (lm) = MV \sim Load$$MV = 1.152819 + (-0.0043569 * Load)$$R^2 = 0.98586$Y-Intercept (b) = 1.152819Slope (m) = -0.0043569#### **(III) Estimate 1 Rep Max**Minimum Velocity Threshold (y) = 0.30$y = mx + b$ -----\> $x = \frac{y-b}{m}$$$e1RM = \frac{0.3 - 1.15282}{-0.00435696}$$e1RM = 196kg```{r}#| echo: false# Solve for e1RM Squat Example# y-interceptyIntSquat <-as.double(lvfit_squat$coefficients[1])# slopelvSlopeSquat <-as.double(lvfit_squat$coefficients[2])# estimate 1RMe1rM_squat <-round((mvtSquat - yIntSquat)/lvSlopeSquat,0)# Unpack lm curve for line pointslvBuild_squat <-ggplot_build(plotSquatLV)# lm curve x and y data framelmdata_squat <-as.data.frame(lvBuild_squat$data[2]) %>%select (x,y)# lm end pointsquatXend <-max(lmdata_squat$x)squatYend <-min(lmdata_squat$y)# slope score slopeScore_squat <-round(AUC(x = lmdata_squat$x, y = lmdata_squat$y),2)```\+```{r}#| echo: falseplote1rm_squat <-ggplot(profSquat, aes(x = Load, y = MV)) +# Rep pointsgeom_point(shape ="circle", size = 2L, colour ="#151819") +# linear trend linegeom_smooth(method = lm) +# Minimum Velocity Thresholdgeom_hline(yintercept = mvtSquat, colour ="red",linetype ="longdash", size =1) +# MVT textgeom_text(aes(x =20, y = mvtSquat, label =paste0("MVT: ", mvtSquat)),colour ="red",nudge_y =0.05,nudge_x =10) +# e1RM future trend linegeom_segment(x = squatXend, y = squatYend,xend = e1rM_squat,yend = mvtSquat,linetype ="dotdash",colour ="#228B22",size =1) +# e1RM Pointgeom_point(aes(x = e1rM_squat, y = mvtSquat),shape ="circle", size = 3L, colour ="#228B22") +# e1RM text labelgeom_text(aes(x = e1rM_squat, y = mvtSquat, label =paste0("e1RM: ",e1rM_squat)),size =5,colour ="#228B22",nudge_y =-0.1,nudge_x =-10) +# LV formula textgeom_text(aes(label = lvFormula_squat), x =120, y =1.25) +# R-squared value textgeom_text(aes(label = rSquared_squat), x =120, y =1.2) +# Slope Score Value textgeom_text(aes(label =paste0("Slope Scores: ", slopeScore_squat), x =120, y =1.15)) +# Plot labelslabs(title ="Velocity Estimated 1 Rep Max",subtitle ="Barbell Back Squat - High Bar",x ="Load (kg)",y ="Mean Velocity (m/s)") +# Plot themetheme_gdocs() +# X-axis limitsxlim(20,200) +# Y-axos limitsylim(0.0,1.5)ggplotly(plote1rm_squat)```# 2-Point Method## Instructions## Bench Press ExampleHere is the table for the bench press example for 2 point method```{r}#| echo: falseplotBenchAll <-ggplot(vmaxBench, aes(x = Load, y = mVelo)) +geom_point(shape ="circle", size = 2L, colour ="#228B22") +labs(title ="Mean Velocity by Load",subtitle ="Barbell Bench Press",y ="Mean Velocity (m/s)",x ="Load (kg)") +theme_gdocs()ggplotly(plotBenchAll)```\+::: column-body-outset```{r}#| echo: falsedfBenchSummary <- vmaxBench %>%group_by(Load) %>%summarise("Reps"=max(Rep),"Avg Mean Velocity (m/s)"=round(mean(mVelo), 2),"Max Mean Velocity (m/s)"=round(max(mVelo), 2),"SD Mean Velocity (m/s)"=round(sd(mVelo),2))# Print table of summarized dataformattable(dfBenchSummary, align ="c")```:::\+#### **(I) Mean Velocity vs Load**```{r}#| echo: falsedfBench2pt <- vmaxBench %>%group_by(Load) %>%summarise("MV"=max(mVelo)) %>%mutate("Method"=ifelse(Load ==60, "2pt", ifelse(Load ==110, "2pt", "Full")))formattable(dfBench2pt, align ="c") ```{fig-align="left" width="400"}\+```{r}```#### **(II) Linear Regression**x =Load \| y = MV$method (lm) = MV \sim Load$$MV = 1.59789 + (-0.00915 * Load)$$R^2 = 0.98586$Y-Intercept (b) = 1.597887Slope (m) = -0.009146907#### **(III) Estimate 1 Rep Max**Minimum Velocity Threshold (y) = 0.17$y = mx + b$ -----\> $x = \frac{y-b}{m}$$$e1RM = \frac{0.17 - 1.597887}{-0.009146907}$$e1RM = 156kg{fig-align="left" width="900"}{fig-align="left" width="900"}